<?php
require_once "../config.php";

/**
 * Controlla le caratteristiche della foto da uplodare
 *
 * @param $uploaded_file
 * @param $allowed_types
 *
 * @return TRUE se la foto e stata accettata
 * 			FALSE altrimenti
 */
function accept($uploaded_file, $allowed_types)
{
	if(!in_array($uploaded_file['type'], $allowed_types))
		return false;
	//TODO controllo se la foto e' troppo piccola
	return true;
}

/**
 * Ridimensiona la foto 
 *
 * @todo controllo grandezza
 * @todo gestione eccezione
 *
 * @param $file_path indirizzo della foto
 *
 * @return
 */
function resize($file_path)
{
	//recupero le informazioni dell'immagine uploadata
	$info_image = getimagesize($file_path);
	$height = $info_image[1];
	$width = $info_image[0];
	$area = $width/$height;
	$new_height = PHOTO_DEFAULT_HEIGHT;
	
	// calcolo in proprozione la width
	$new_width = (int) ($area * $new_height);
	
	// resample
	$new_image = imagecreatetruecolor($new_width, $new_height); #creo la nuova immagine vuota
	$image = null;
	
	switch ($info_image['mime'])
	{
		case "image/jpeg":
			$image = imagecreatefromjpeg($file_path);
			break;
			
		case "image/gif":
			$image = imagecreatefromgif($file_path);
			break;
			
		case "image/png":
			$image = imagecreatefrompng($file_path);
			break;
	}	
	
	if(imagecopyresized($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height))
		echo " copied";
	return imagepng($new_image, PHOTO_DIR."TEMP.PNG");
}

/**
 * Crea un thumbnail per la foto
 *
 * @require la foto deve essere un png
 * @todo controllo grandezza
 * @todo gestione eccezione
 *
 * @param $file_path indirizzo della foto
 *
 * @return
 */
function thumbnail($file_path)
{
	
	$info_image = getimagesize($file_path);
	$height = $info_image[1];
	$width = $info_image[0];
	$area = $width/$height;
	$new_height = THUMB_DEFAULT_HEIGHT;
	
	// calcolo in proprozione la width
	$new_width = (int) ($area * $new_height);
	
	// resample
	$new_image = imagecreatetruecolor($new_width, $new_height); #creo la nuova immagine vuota
	$image = imagecreatefrompng($file_path);
	imagecopyresized($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
	return imagepng($new_image, PHOTO_DIR."THUMB.PNG");
}

/**
 * Restituisce l'oggetto Gallery relativa alla galleria memorizzata con un precedente set_session_gallery()
 * 
 * @return l'oggetto Gallery della galleria che si sta modificando
 */
function get_session_photo()
{
	return unserialize($_SESSION['photo']);
}

/**
 * Setta la variabile di sessione relativa alla Gallery
 */
function set_session_photo($photo)
{
	$_SESSION['photo'] = serialize($photo);
}
?>
